class Solution {
    public int massage(int[] nums) {
        int n = nums.length;

        if(n == 0) return 0;

        // 定义状态表示
        int[] f = new int[n]; // i 位置必选的最佳预约时常
        int[] g = new int[n]; // i 位置不选的最佳预约时常

        // 初始化
        f[0] = nums[0];
        g[0] = 0;

        // 状态转移方程
        for(int i = 1; i < n; i++){
            f[i] = g[i - 1] + nums[i];
            g[i] = Math.max(f[i - 1], g[i - 1]);
        }

        return Math.max(f[n - 1], g[n - 1]);
    }
}